﻿namespace Softserve.Pottery.Warehouse
{
    using System;
    using Softserve.Pottery.Infrastructure;
    using Softserve.Pottery.Infrastructure.Interfaces;
    using Softserve.Pottery.Warehouse.Contracts;

    public class WarehouseController : DomainControllerBase, IWarehouseScopeContract
    {
        #region Construcors from base();

        public WarehouseController(IRepository context)
            : base(context) { }

        public WarehouseController(IRepository context, IMessenger bridge)
            : base(context, bridge, null) { }

        public WarehouseController(IRepository context, IMessenger bridge, IServiceProvider provider) : base(context, bridge, provider) { }


        #region IAddressContract Members

        public Domains.Address CreateAdress(string country, string region, string city, string street, int m_ZipCode, string houseNumber, string m_ApartmentNumber = default(string), int m_Floor = default(int), string description = default(string))
        {
            return new Domains.Address() { Country = country, Region = region, City = city, Street = street, ZipCode = m_ZipCode, HouseNumber = houseNumber, ApartmentNumber = m_ApartmentNumber,Floor = m_Floor, Description = description };
        }

        #endregion

        #region IWarehouseContract Members

        public void CreateWarehouse(int id, string name, Domains.Address adress, int squareTotal, int squareFree, DateTime dateCreate)
        {
            throw new NotImplementedException();
        }

        #endregion

        #region IWarehouseCatalogContract Members

        public void AddWarehouse(Domains.PotteryWarehouse item)
        {
            throw new NotImplementedException();
        }

        public void RemoveWarehouse(Domains.PotteryWarehouse item)
        {
            throw new NotImplementedException();
        }

        public void EditWarehouse(int productId, Domains.PotteryWarehouse item)
        {
            throw new NotImplementedException();
        }

        #endregion

        protected override void Dispose(bool disposeManaged)
        {
            ///TODO: Implement code of release resources here
        }

        #endregion
    }
}
